home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / misc / emu / msh-156.lha / han / hancmd.c < prev    next >
C/C++ Source or Header  |  1996-12-22  |  3KB  |  134 lines

  1. /*-
  2.  * $Id: hancmd.c,v 1.56 1996/12/22 00:22:33 Rhialto Rel $
  3.  * $Log: hancmd.c,v $
  4.  * Revision 1.56  1996/12/22  00:22:33  Rhialto
  5.  * Cosmetics only.
  6.  *
  7.  * Revision 1.55  1993/12/30  23:28:00    Rhialto
  8.  * Freeze for MAXON5.
  9.  *
  10.  * Revision 1.54  1993/06/24  05:12:49    Rhialto
  11.  * DICE 2.07.54R.
  12.  *
  13.  * Revision 1.53  92/10/25  02:42:51  Rhialto
  14.  * Add default conversion. Make ::M+ work as advertised.
  15.  *
  16.  * Revision 1.51  92/04/17  15:38:30  Rhialto
  17.  * Freeze for MAXON3.
  18.  *
  19.  * Revision 1.46  91/10/06  18:25:10  Rhialto
  20.  *
  21.  * Freeze for MAXON
  22.  *
  23.  * Revision 1.45  91/10/04  00:12:32  Rhialto
  24.  * Add confirmation requesters and a switch for them
  25.  *
  26.  * Revision 1.43  91/09/28  01:33:22  Rhialto
  27.  * DICE conversion.
  28.  *
  29.  * Revision 1.42  91/06/13  23:44:47  Rhialto
  30.  * DICE conversion
  31.  *
  32.  * Revision 1.40  91/03/03  17:55:08  Rhialto
  33.  * Freeze for MAXON
  34.  *
  35.  * Revision 1.32  90/11/23  23:50:53  Rhialto
  36.  * Prepare for syslog
  37.  *
  38.  * Revision 1.30  90/06/04  23:18:03  Rhialto
  39.  * Release 1 Patch 3
  40.  *
  41.  * HANCMD.C
  42.  *
  43.  * The code for the messydos file system handler
  44.  *
  45.  * Special commands through MSH::something file names.
  46.  *
  47.  * This code is (C) Copyright 1990-1993 by Olaf Seibert. All rights reserved.
  48.  * May not be used or copied without a licence.
  49. -*/
  50.  
  51. #include <stdlib.h>
  52. #include "han.h"
  53. #if CONVERSIONS
  54. #include "hanconv.h"
  55. #endif /* CONVERSIONS */
  56.  
  57. #if HDEBUG
  58. #   include "syslog.h"
  59. #else
  60. #   define    debug(x)
  61. #endif
  62.  
  63. Prototype void HandleCommand(char *cmd);
  64. Local void    ltoa(unsigned long l, char *a);
  65.  
  66. Local int    DoMessages = 1;
  67.  
  68. static void
  69. ltoa(l, a)
  70. unsigned long    l;
  71. char           *a;
  72. {
  73.     if (l > 999) {
  74.     a[0] = '*';
  75.     a[1] = '*';
  76.     a[2] = '*';
  77.     } else {
  78.     a[0] = '0' + l / 100;
  79.     l %= 100;
  80.     a[1] = '0' + l / 10;
  81.     l %= 10;
  82.     a[2] = '0' + l;
  83.     }
  84. }
  85.  
  86. void
  87. HandleCommand(cmd)
  88. char           *cmd;
  89. {
  90.     if (cmd[1] == 'B') {
  91.     CheckBootBlock = atoi(&cmd[2]);
  92.     if (DoMessages) {
  93.         static char msg[] = "BootBlk: 000";
  94.  
  95.         ltoa(CheckBootBlock, msg + 9);
  96.         DisplayMessage(msg);
  97.     }
  98. #if CONVERSIONS
  99.     } else if (cmd[1] == 'C') {
  100.     DefaultConversion = cmd[2] & 31;
  101.     if (DefaultConversion >= ConvFence)
  102.         DefaultConversion = ConvNone;
  103.     if (DoMessages) {
  104.         static char msg[] = "Conversion: x";
  105.  
  106.         msg[12] = '@' + DefaultConversion;
  107.         DisplayMessage(msg);
  108.     }
  109. #endif /* CONVERSIONS */
  110.     } else if (cmd[1] == 'F') {
  111.     if (cmd[2] == '+') {
  112.         DiskIOReq->iotd_Req.io_Flags |= IOMDF_40TRACKS;
  113.         if (DoMessages) {
  114.         DisplayMessage("40 track mode");
  115.         }
  116.     } else if (cmd[2] == '-') {
  117.         DiskIOReq->iotd_Req.io_Flags &= ~IOMDF_40TRACKS;
  118.         if (DoMessages) {
  119.         DisplayMessage("80 track mode");
  120.         }
  121.     } else {
  122.         DiskIOReq->iotd_Req.io_Flags = atoi(&cmd[2]);
  123.         if (DoMessages) {
  124.         static char msg[] = "io_Flags: 000";
  125.  
  126.         ltoa(DiskIOReq->iotd_Req.io_Flags, msg + 10);
  127.         DisplayMessage(msg);
  128.         }
  129.     }
  130.     } else if (cmd[1] == 'M') {
  131.     DoMessages = (cmd[2] == '+')? 1 : atoi(&cmd[2]);
  132.     }
  133. }
  134.